from 工程.凌云项目.MLS接收模块.基础配置.基础配置引用 import *

def MLSAGC控制测试初始化():
    模块编号 = str(sys.UUTINFO[1])
    if gy参数.初始化标识 != 'MLSAGC控制测试初始化'+模块编号:
        gy参数.初始化标识='MLSAGC控制测试初始化'+模块编号
    else:
        return
    gy产品.模块控制.连接()
    gy仪器.频谱仪.连接()
    gy仪器.信号源.连接()
    gy产品.射频路由.连接()

    gy仪器.信号源.设置幅度(-100)
    gy仪器.信号源.调制开关('关')
    gy仪器.信号源.射频开关('开')
    gy仪器.频谱仪.设置扫频带宽(5e5)
    gy仪器.频谱仪.设置视频带宽自动()
    gy仪器.频谱仪.设置分析带宽自动()
    gy仪器.频谱仪.设置扫描时间自动()
    gy仪器.频谱仪.设置功率单位('DBM')
    gy仪器.频谱仪.设置参考幅度(15)
    gy仪器.频谱仪.设置触发源IMM()
    gy仪器.频谱仪.设置自动衰减()
    gy仪器.频谱仪.设置触发开关('开')
    gy仪器.频谱仪.设置内部增益开关(0)
    gy仪器.频谱仪.设置中心频率(70e6)
    gy仪器.频谱仪.设置最大保持开关('关')

    gy产品.射频路由.接通MLS频谱仪测试()
    print("MLSAGC控制测试初始化")

def MLSAGC控制(频点=5031,输入电平=-100):
    MLSAGC控制测试初始化()
    if 频点=="抽测频点":
        随机值 = gy方法.随机数.产生随机整数(1, 197)
        if 随机值 in [100,]:
            随机值+=1
        频点=随机值*0.3+5031
    频率=频点*1000000
    gy产品.模块控制.设置MLS频率(频点)
    gy仪器.信号源.设置频率(频率)
    gy仪器.信号源.设置幅度(输入电平 + gy参数.通道补偿['MLS'])
    if 输入电平>-50:
        起点 = 40
    else:
        起点 = 200
    for i in range(99):
        gy产品.模块控制.设置AGC控制('MLS', 起点)
        gy方法.时间处理.延时(0.2)
        gy仪器.频谱仪.设置寻峰值()
        峰值 = gy仪器.频谱仪.读幅度()
        if 峰值 > 8:
            起点 -= 2
        elif 峰值 < -5:
            起点 += 2
        else:
            break

        if i > 255 or i < 0:
            break

    gy方法.测试结果保存.结果保存(峰值, '')
    if 频点 not in [5031,5061,5090.7]:
        gy方法.测试结果保存.结果保存(频点, '频点')

if __name__=='__main__':
    pass
    sys.UUTINFO = [0, 1]
    MLSAGC控制(5061,-20)